
#ifndef __MONSTERFACTORY_H_
#define __MONSTERFACTORY_H_
#include"Monster.h"
#include"Point.h"
#include "Prop.h"
#include<iostream>
using namespace std;

class MonsterFactory{
public:
MonsterFactory();
Monster  getMonster(const string&  name, const Point &p);
};

class WeaponFactory {
public:
    WeaponFactory() {}
    shared_ptr<Weapon> getWeapon(const string& name);
};

class ArmorFactory {
public:
    ArmorFactory() {}
    shared_ptr<Armor> getArmor(const string& name);
};

class PotionFactory {
public:
    PotionFactory() {}
    shared_ptr<Potion> getPotion(const string& name);
};

shared_ptr<Prop> AllFactory(const string& name);


#endif